home *** CD-ROM | disk | FTP | other *** search
- Path: news.eunet.fi!newsmaster
- From: kp@direktor.voima.jkl.fi (Kari-Pekka Koljonen)
- Newsgroups: comp.sys.amiga.programmer
- Subject: Re: random number in assembly
- Date: 30 Mar 1996 19:30:09 GMT
- Message-ID: <1964.6654T687T310@direktor.voima.jkl.fi>
- References: <Pine.NEB.3.91.960327200012.12939A-100000@dirty.cute.fi>
- NNTP-Posting-Host: kauhajoki.fi
- X-Newsreader: THOR 2.22 (Amiga;TCP/IP) *UNREGISTERED*
-
- >Hi!
- >Could someone tell me how to get a VERY WELL randomized number?
- >I've tried all kinds of methods but they are not enough random :(
- >To make the problem a little bit harder I need a routine that can be used
- >in loops so that the numbers wouldn't be for ex. 4,8,12,16,20 or
- >2,3,4,5,6,7. Hope you understood that :)
-
- >+++++++++++++++++++++++++++++++++++++++++++++
- >+ Kristian "Hwmagic" Slavov +
- >+ Email: krslavov@freenet.hut.fi --or-- +
- >+ kslavov@cute.fi +
- >+++++++++++++++++++++++++++++++++++++++++++++
-
-
- Somebody sent me this a long time ago. It creates a seed value via banging
- some hardware regs but you can of course replace it with your own seed and
- get a pseudo-random number generator.
-
-
-
- srand: move.l $dff004,d0 ; Initialize random generator.. Call once
- add.l $dff002,d0
- add.l $dc0000,d0
- add.l $dc0004,d0
- add.l $dc0008,d0
- add.l $dc000c,d0
- move.l d0,seed
- rts
-
- rand: move.l seed(pc),d0 ; Returns random number (result: d0 = 0-32767)
- move.l #$41c64e6d,d1
- jsr mulu32
- add.l #$3039,d0
- move.l d0,seed
- moveq #$10,d1
- lsr.l d1,d0
- and.l #$7fff,d0
- rts
-
- mulu32: movem.l d1-d3,-(sp) ; Multiply d0 and d1 using 32 bit, d0=result
- move.w d1,d2
- mulu d0,d2
- move.l d1,d3
- swap d3
- mulu d0,d3
- swap d3
- clr.w d3
- add.l d3,d2
- swap d0
- mulu d1,d0
- swap d0
- clr.w d0
- add.l d2,d0
- movem.l (sp)+,d1-d3
- rts
-
- seed: dc.l 0 ; random seed storage (long)
-
-
- ---
- ***************************************************
- K-P Koljonen / Hippopotamus Design / iNSANE
- kp@direktor.voima.jkl.fi, kpkoljon@freenet.hut.fi
- http://direktor.voima.jkl.fi/~kp K-P@IRC
- ***************************************************
-
-
-